import Vue from 'vue'
import Vuex from 'vuex'
import axios from '../config/axios'
// 引入二次封装的axios

Vue.use(Vuex)

export default new Vuex.Store({
    state: {
        list: [] //购物车数据
    },
    mutations: {
        // 获取首次数据
        setList(state, data) {
            state.list = data
        },
        // 修改选中状态
        setCheck(state, index) {
            state.list[index].isCheck = !state.list[index].isCheck
        },
        // 修改全部选中状态
        setAll(state, allCheck) {
            state.list.map(item => {
                item.isCheck = !allCheck
            })
        },
        // 数量增加
        addNum(state, index) {
            state.list[index].num++
        },
        // 数量减少
        reduceNum(state, index) {
            state.list[index].num--
        }
    },
    // 请求接口
    actions: {
        getList(vuex) {
            // 判断数组中是否有数据
            if (vuex.state.list.length == 0) {
                // 如果没有，就请求数据
                axios.get('/shopCar').then(res => {
                    vuex.commit('setList', res.data)
                })
            }
        }
    },
    modules: {}
})